package com.chenjj.scala.bibao

/**
  * 演示以函数作为参数，函数只有一个参数
  */
object FunctionSingleParam {

  /**
    *
    * @param number
    * @param codeBlock  函数接收一个Inti型的参数，返回Int
    * @return
    */
  def totalResultOverRange(number:Int,codeBlock:Int=>Int) ={
    var result = 0;
    for (i <- 1 to number){
      result += codeBlock(i)
    }
    result
  }

  /**
    * 求和
    */
  def Sum(number:Int) ={
    totalResultOverRange(number, i => i)
  }

  /**
    * 奇数求和
    */
  def jishuSum(number:Int)={
     totalResultOverRange(number,i=> {if(i % 2 == 0) 0 else i})
  }

  /**
    * 偶数求和
    */
  def oushuSum(number:Int)={
    totalResultOverRange(number,i=> {if(i % 2 == 0) i else 0})
  }

  def main(args: Array[String]): Unit = {
    println(Sum(100))
    println(jishuSum(100))
    println(oushuSum(100))
  }
}
